package com.fs.web.base.service.impl;

import com.fs.common.baseMapper.UserMapper;
import com.fs.common.pojo.User;
import com.fs.common.vo.UnhandledEventVo;
import com.fs.common.yzMapper.CheckNoteMapper;
import com.fs.web.base.service.MenuService;
import com.fs.web.base.utils.ApplicationUtils;
import com.fs.web.base.vo.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 主页未办理事项栏
 */
@Service
public class MenuServiceImpl implements MenuService {

    @Autowired
    private UserMapper userMapper;
    @Autowired
    private CheckNoteMapper checkNoteMapper;

    @Override
    public List<UnhandledEventVo> getUnhandledEventList() {
        LoginUser loginUser = ApplicationUtils.getUser();
        User user = loginUser.getUser();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
        String today = df.format(new Date());// new Date()为获取当前系统时间
        String month = today.substring(0,8) + "01"; // 2019-11-01...
        List<UnhandledEventVo> listMap = new ArrayList<>();
        // 查询是否超级管理员
        if (user.isSysAdm()){
            // 总用户数
            Integer userCount = userMapper.selectCount(null);
            // 今日新增用户
            int todayUserCount = userMapper.findTodayNewUser(today);
            // 本月检测数量
            int monthCheckNote = checkNoteMapper.findDateCheckNoteForUserId(month,null);
            // 今日检测数量
            int todayCheckNote = checkNoteMapper.findDateCheckNoteForUserId(today,null);

            UnhandledEventVo event1 = new UnhandledEventVo("平台用户总数",userCount);
            UnhandledEventVo event2 = new UnhandledEventVo("今日新增用户",todayUserCount);
            UnhandledEventVo event3 = new UnhandledEventVo("本月检测总数",monthCheckNote);
            UnhandledEventVo event4 = new UnhandledEventVo("今日检测总数",todayCheckNote);
            listMap.add(event1);
            listMap.add(event2);
            listMap.add(event3);
            listMap.add(event4);

        } else { // 登录账号为普通用户
            // 此用户本月检查数量
            int userMonthCheckNote = checkNoteMapper.findDateCheckNoteForUserId(month, user.getId());
            // 此用户今日检查数量
            int userTodayCheckNote = checkNoteMapper.findDateCheckNoteForUserId(today, user.getId());

            UnhandledEventVo event1 = new UnhandledEventVo("本月检测次数",userMonthCheckNote);
            UnhandledEventVo event2 = new UnhandledEventVo("今日检测次数",userTodayCheckNote);
            listMap.add(event1);
            listMap.add(event2);
        }
        return listMap;
    }
}
